package com.example.jobback.service.recruiter;

import com.example.jobback.req.common.page.PageReq;
import com.example.jobback.req.recruiter.company.profile.CompanyReq;
import com.example.jobback.req.recruiter.employee.create.EmployeeCreatedReq;
import com.example.jobback.req.recruiter.profile.RecruiterReq;
import com.example.jobback.resp.recruiter.company.employee.GetCompanyEmployeeResp;
import com.example.jobback.resp.recruiter.company.message.RCrossComMessageResp;
import com.example.jobback.resp.recruiter.company.page.RCrossGetPageCompanyListResp;
import com.example.jobback.resp.recruiter.profile.RecruiterCompanyResp;
import com.example.jobback.result.Result;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @InterfaceName: RecruiterCompanyService
 * @Description:招聘者-公司服务接口
 * @Author: lhb
 * @Date: 2025/6/21
 */
@Service
public interface RecruiterCompanyService {
    Result<RecruiterCompanyResp> getBasicMessage();

    Result<RecruiterCompanyResp> getRecruiterBasicMessage(Long userId);

    Result<Object> editBasicMessage(RecruiterReq req);

    Result<Object> uploadAvatar(MultipartFile file);

    Result<Object> uploadCompanyAvatar(MultipartFile file);

    Result<Object> editCompanyBasicMessage(CompanyReq req);

    Result<Object> editCompanyCoreMessage(String companyName, LocalDateTime createDate);

    Result<Object> createEmployee(EmployeeCreatedReq req);

    Result<RCrossComMessageResp> CrossGetCompanyMessageForAdmin(Long companyId);

    Result<RecruiterCompanyResp> getRecruiterBasicMessageForAdmin(Long userId);

    Result<RCrossGetPageCompanyListResp> getCompanyList(PageReq pageReq);

    Result<List<GetCompanyEmployeeResp>> getCompanyEmployees();

    Result<Object> deleteEmployee(Long deleteUserId);
}
